x11: Only set the keymap display once
authorMatthias Clasen <mclasen@redhat.com>
Fri, 12 Jan 2018 02:45:32 +0000 (21:45 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 12 Jan 2018 14:24:08 +0000 (09:24 -0500)
Not necessary to do this more than once.

gdk/x11/gdkdisplay-x11.c

index 762de7f96d696d1e544803d18486295f28e6b5b7..8fc168884088794f17a082abd62b0eaaa9fbbd54 100644 (file)
@@ -2928,9 +2928,10 @@ gdk_x11_display_get_keymap (GdkDisplay *display)
   display_x11 = GDK_X11_DISPLAY (display);
 
   if (!display_x11->keymap)
-    display_x11->keymap = g_object_new (GDK_TYPE_X11_KEYMAP, NULL);
-
-  display_x11->keymap->display = display;
+    {
+      display_x11->keymap = g_object_new (GDK_TYPE_X11_KEYMAP, NULL);
+      display_x11->keymap->display = display; /* beware of ref cycle */
+    }
 
   return display_x11->keymap;
 }